package org.sdfc.model.attr

import org.sdfc.model.MutableTypedObject
import org.sdfc.model.TypedObject

/** Generic form of an Attribute.
 */
trait AttributeGenericForm[+T] {
  
  /** Copies value(s) of related Attribute from source object to target object. 
   */
  def copy(src : TypedObject, tgt : MutableTypedObject) : Unit
  
}


/** Generic form of a SingleAttribute.
 */
trait SingleAttributeGenericForm[+T] extends AttributeGenericForm[T] {
  
  def get(obj : TypedObject) : T
  
}

/** Generic form of a RepeatingAttribute
 */
trait RepeatingAttributeGenericForm[+T] extends AttributeGenericForm[T] {
  
}